package com.sieiot.goodknow.common.util;

import com.github.pagehelper.Page;
import com.sieiot.goodknow.base.stable.api.TPageResult;

import java.util.List;


/**
 * 分页工具类
 * @author lyh
 * @since 2021-07-27
 */
public class PageUtil {

    /**
     * 将PageHelper的分页对象转换成用于响应的分页对象
     * @param pageInfo 分页信息和分页列表数据
     * @param <T>
     * @return
     */
    public static <T> TPageResult<T> restPage(Page<T> pageInfo) {
        return restPage(pageInfo, pageInfo.getResult());
    }

    /**
     * 用于查询出的分页数据不是用于响应的情况，
     * 响应对象基于分页数据进一步加工生成新的数据用于分页响应。
     * @param pageInfo 分页信息
     * @param dataList 分页列表数据
     * @param <T>
     * @return
     */
    public static <T> TPageResult<T> restPage(Page<T> pageInfo, List<T> dataList) {
        TPageResult<T> result = new TPageResult<T>();
        result.setTotalPage(pageInfo.getPages());
        result.setPageNum(pageInfo.getPageNum());
        result.setPageSize(pageInfo.getPageSize());
        result.setTotal(pageInfo.getTotal());
        result.setList(dataList);
        return result;
    }

}
